class CartItemsController < ApplicationController

  before_filter :find_product


  # Voeg een product toe aan de winkelwagen.
  def create

    quantity = params[:quantity].to_i

    # Laat geen negatieve hoeveelheden toe.
    if quantity <= 0
      quantity = 1
    end

    @cart.add_product(@product, quantity)

    flash[:notice] = 'Het product "%s" is toegevoegd.' % @product.name

    redirect_to cart_path
  end


  # Pas de hoeveelheid van een product aan.
  def update

    if params[:quantity] != nil
      @cart.update_product_quantity(@product, params[:quantity].to_i)

      flash[:notice] = 'De hoeveelheid is aangepast.'
    else
      flash[:notice] = 'Er is geen nieuwe hoeveelheid opgegeven.'
    end

    redirect_to cart_path
  end


  # Verwijder een product uit de winkelwagen.
  def destroy
    @cart.remove_product(@product)

    flash[:notice] = 'Het product "%s" is verwijderd.' % @product.name

    redirect_to cart_path
  end

  private
    def find_product
      begin
        @product = Product.find(params[:product_id])
      rescue ActiveRecord::RecordNotFound => e
        return redirect_to cart_path
      end
    end

end